#ifndef __pipe_hpp__
#define __pipe_hpp__

#include <croco/os/native_handle_type.hpp>
#include <cstddef>

namespace croco
{
namespace os
{

class pipe
{
public:
    pipe();
    native_handle_type r() const { return m_r; }
    native_handle_type w() const { return m_w; }
    int write(const char* data, std::size_t size) const;
    int read(char* buffer, std::size_t size) const;
private:
    native_handle_type m_r, m_w;
};

} // namespace os
} // namespace croco

#endif // __pipe_hpp__
